Finite-length equalization over multi-input multi-output (MIMO) channels

ABSTRACT

A MIMO Decision Feedback Equalizer improves operation of a receiver by cancelling the spatio-temporal interference effects caused by the MIMO channel memory with a set of FIR filters in both the feedforward and the feedback MIMO filters. The coefficients of these FIR filters can be fashioned to provide a variety of controls by the designer.

RELATED APPLICATION

This is a continuation application of U.S. patent application Ser. No. 09/671,638 filed Sep. 28, 2000 now U.S. Pat. No. 6,870,882. This application claims priority from Provisional application No. 60/158,714, filed on Oct. 8, 1999. This application is also related to a Provisional application No. 60/158,713, also filed on Oct. 8, 1999.

BACKGROUND OF THE INVENTION

In multi-user communication over linear, dispersive, and noisy channels, the received signal is composed of the sum of several transmitted signals corrupted by inter-symbol interference, inter-user interference, and noise. Examples include TDMA (time division multiple access) digital cellular systems with multiple transmit/receive antennas, wide-band asynchronous CDMA (code division multiple access) systems, where inter-user interference is also known as is multiple access interference, wide-band transmission over digital subscriber lines (DSL) where inter-user interference takes the form of near-end and far-end crosstalk between adjacent twisted pairs, and in high-density digital magnetic recording where inter-user interference is due to interference from adjacent tracks.

Multi-user detection techniques for multi-input multi-output (MIMO) systems have been shown to offer significant performance advantages over single user detection techniques that treat inter-user interference as additive colored noise and lumps its effects with thermal noise. Recently, it has been shown that the presence of inter-symbol interference in these MIMO systems could enhance overall system capacity, provided that effective multi-user detection techniques are employed.

The optimum maximum likelihood sequence estimation (MLSE) receiver for MIMO channels was developed by S. Verdu, “Minimum Probability of Error for Asynchronous Gaussian Multiple Access Channels,” IEEE Transactions on Information Theory, January 1986, pp. 85-96. However, its exponential complexity increases with the number of users, and channel memory makes its implementation costly for multi-user detection on severe-inter-symbol interference channels.

Two alternative transceiver structures have been recently proposed for MIMO dispersive channels as well. These structures, which are widely used in practice for single-input single-output dispersive channels, are the Discrete Multitone and minimum-mean-square-error decision feedback equalizer (MMSE-DFE). In the latter category, this includes A. Duel-Hallen “Equalizers for Multiple Input Multiple Output Channels and PAN Systems with Cyclostationary Input Sequences,” IEEE Journal on Selected Areas on Communications, April 1992, pp. 630-639; A. Duel-Hallen “A Family of Multiuser Decision-Feedback Detectors for Asynchronous Code Division Multiple Access Channels,” IEEE Transactions on Communications, February/March/April 1995, pp. 421-434; J. Yang et an “Joint Transmitter and Receiver Optimization for Multiple Input Multiple Output Systems with Decision Feedback,” IEEE Transactions on Information Theory, September 1994, pp. 1334-1347; and J. Yang et al “On Joint Transmitter and Receiver Optimization for Multiple Input Multiple Output (MIMO) Transmission Systems,” IEEE Transactions on Communications, December 1994, pp. 3221-3231. Alas, the prior art does not offer a practical MIMO MMSE-DFE receiver with feedforward and feedback FIR (finite impulse response) filters whose coefficients can be computed in a single computation (i.e., non-iteratively) in real-time under various MIMO detection scenarios.

SUMMARY

An advance in the art is realized with receiver having a multiple number of receiving antennas that feed a MIMO feedforward filter that is constructed from FIR filters with coefficients that are computed based on environment parameters that are designer-specified. Signals that are derived from a multiple-output feedback filter structure are subtracted from the signals from the multiple outputs of the feedforward filter structure, and the resulting difference signals are applied to a decision circuit. Given a transmission channel that is modeled as a set of FIR filters with memory ν, a matrix W is computed for a feedforward filter that results in an effective transmission channel B with memory N_(b), where N_(b)≦ν, where B is optimized so that B_(opt)=argmin_(B)trace(R_(ee)) subject to selected constraints; R_(ee) being the error autocorrelation function. The feedback filter is modeled by [I_(n) _(i) 0_(n) _(i) _(xn) _(i) _(N) _(b) ]−B*, where n_(i) is the number of outputs in the feedforward filter, as well as the number of outputs in the feedback filter.

The coefficients of feedforward and the feedback filters, which are sensitive to a variety of constraints that can be specified by the designer, are computed by a processor in a non-iterative manner, only as often as it is expected for the channel characteristics to change.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 shows the major elements of a receiver in accord with the principles disclosed herein;

FIG. 2 presents the structure of elements 23 and 26, although element 26 differs in size from element 23, in that element 23 has n_(o) number of inputs and n_(o)×n_(i) filters, whereas element 26 has n_(t) number of inputs and n_(i)×n_(i) filters;

FIG. 3 is a flowchart describing one method carried out by processor 22; and

FIG. 4 is a flowchart describing another method carried out by processor 22.

DETAILED DESCRIPTION

FIG. 1 depicts the general case of an arrangement with n_(i) transmitting antennas 11-1, 11-2, . . . 11-n _(i), that output signals (e.g., space-time encoded signals) to a transmission channel, and n_(o) receiving antennas 21-1, 21-2, . . . 21-n _(o). Each transmitting antenna p outputs a complex-valued signal x_(p), the signals of the n_(i) antennas pass through a noisy transmission channel, and the n_(o) receiving antennas capture the signals that passed through the transmission channel. The received signals are oversampled by a factor of l in element 20 and applied to feedforward W filters 23. Thus, the sampling clock at the output of element 20 is of period T_(s)=T/I, where T is the inter-symbol period at the transmitting antennas. The transmission channel's characterization is also referenced to T_(s).

Filter bank 23 delivers an n_(i) plurality of output signals (n_(i) can equal n_(q) for example) from which feedback signals are subtracted in circuit 24 and applied to decision circuits 25 (comprising conventional slicers). The outputs of decision circuits 25 are applied to feedback filters 26, which develop the feedback signals. Processor 22 develops the filter coefficients for the filters within elements 23 and 26 and installs the coefficients in the filters within these elements, as disclosed in detail below.

In the illustrative embodiment disclosed herein, the received signal is expressed by

$\begin{matrix} {{y_{k}^{(j)} = {{\sum\limits_{i = 1}^{n_{i}}\;{\sum\limits_{m = 0}^{v^{({i,j})}}\;{h_{m}^{({i,j})}x_{k - m}^{(i)}}}} + n_{k}^{(j)}}},} & (1) \end{matrix}$ where y_(k) ^((j)) is the signal at time k at the j^(th) receiving antenna, h_(m) ^((i,j)) is the m^(th) coefficient (tap) in the channel impulse response between the i^(th) transmitting antenna and the j^(th) receiving antenna, and n^((j)) is the noise vector at the j^(th) receiving antenna. The memory of the path (i.e., the largest value of m for which h_(m) ^((i,j)) is not zero) is denoted by ν^((i,j)).

It may be noted that it not unreasonable to assume, that the memory of the transmission channel is the same for all i,j links (n_(i)×n_(o) such links), in which case ν^((i,j))=ν. Alternatively, the ν^((i,j)) limit in equation (1) can be set to that ν which corresponds to maximum length of all of the n_(i)×n_(o) channel input responses, i.e., ν=max_(i,j)ν^((i,j)). It may also be noted that all of the variables in equation (1) are actually l×1 column vectors, corresponding to the l time samples per symbol in the oversampled FIG. 1 arrangement.

By grouping the received samples from all n_(o) antennas at symbol time k into an n_(o)l×1 column vector y_(k), one can relate y_(k) to the corresponding n_(i)×1 (column) vector of input samples as follows

$\begin{matrix} {{y_{k} = {{\sum\limits_{m = 0}^{v}\;{H_{m}x_{k - m}}} + n_{k}}},} & (2) \end{matrix}$ where H_(m) is the MIMO channel coefficients matrix of size n_(o)l×n_(i), x_(k−m) is a size n_(i)×1 input (column) vector, and n_(k) is a size n_(o)l×1 vector.

Over a block of N_(f) symbol periods, equation (2) can be expressed in matrix notation as follows:

$\begin{matrix} {\begin{bmatrix} y_{k + N_{f} - 1} \\ y_{k + N_{f} - 2} \\ \vdots \\ y_{k} \end{bmatrix} = {\quad{{\left\lbrack \begin{matrix} H_{0} & H_{1} & \ldots & H_{v} & 0 & \ldots & 0 \\ 0 & H_{0} & H_{1} & \ldots & H_{v} & 0 & \ldots \\ \vdots & \vdots & \vdots & \vdots & \vdots & ⋰ & \vdots \\ 0 & \ldots & 0 & H_{0} & H_{1} & \ldots & H_{v} \end{matrix} \right\rbrack\left\lbrack \begin{matrix} x_{k + N_{f} - 1} \\ x_{k + N_{f} - 2} \\ \vdots \\ x_{k - v} \end{matrix} \right\rbrack} + \left\lbrack \begin{matrix} n_{k + N_{f} - 1} \\ n_{k + N_{f} - 2} \\ \vdots \\ n_{k} \end{matrix} \right\rbrack}}} & (3) \end{matrix}$ or, more compactly, y _(k+N) _(f) _(−tk) =Hx _(k+N) _(f) _(−tk−ν) +n _(k+N) _(f) _(−tk).  (4) The subscripts in equation (4) indicate a range. For example k+N_(f)−1:k means the range from k+N_(f)−1 to k, inclusively.

It is useful to define the following correlation matrices: R_(xy)≡E[x_(k+N) _(f) _(−tk−ν)y*_(k+N) _(f) _(−tk)]=R_(xx)H*  (5) R _(yy) ≡E[y _(k+N) _(f) _(−tk) y* _(k+N) _(f) _(−tk) ]=HR _(xx) H*+R _(nn),  (6) R_(xx)≡E[x_(k+N) _(f) _(−tk−ν)x*_(k+N) _(f) _(−tk−ν)] and  (7) R_(nn)≡E[n_(k+N) _(f) _(−tk)n*_(k+N) _(f) _(−tk)],  (8) and it is assumed that these correlation matrices do not change significantly in time or, at least, do not change significantly over a time interval that corresponds to a TDMA burst (assumed to be much shorter than the channel coherence time), which is much longer than the length of the FIR filters in element 23 (in symbol periods denoted by N_(f)). Accordingly, a re-computation within processor 22 of the above matrices, and the other parameters disclosed herein, leading to the computation of the various filter coefficients, need not take place more often than once every TDMA burst. Once H, R_(xx) and R_(nn) are ascertained (through the conventional use of training sequences), R_(xy) and R_(yy) are computed by R_(xx)H* and HR_(xx)H*+R_(nn), respectively.

In accordance with the principles disclosed herein, element 23 comprises a collection of FIR filters that are interconnected as shown in FIG. 2, and the impulse response coefficients of element 23 can be expressed by W*≡[W*₀ W*₁ . . . W*_(N) _(f−1) ], each having N_(f) matrix taps W_(i), of size (ln₀×n_(i)). That is, W_(i) has the form:

$\begin{matrix} {W_{i} = \begin{bmatrix} w_{i}^{({1,1})} & \ldots & w_{i}^{({1,n_{i}})} \\ \vdots & \ldots & \vdots \\ w_{i}^{({n_{a},1})} & \ldots & w_{i}^{({n_{a},n_{i}})} \end{bmatrix}} & (9) \end{matrix}$ where each entry in W_(j) ^((p,q)) is an l×1 vector corresponding to the l output samples per symbol. Stated in other words, the matrix W₀ specifies the 0^(th) tap of the set of filters within element 23, the matrix W₁ specifies the 1^(st) tap of the set of filters within element 23, etc.

Also in accordance with the principles disclosed herein, element 26 comprises a collection of FIR filters that also are interconnected as shown in FIG. 2, and the impulse response coefficients of element 26 is chosen to be equal to [I_(n) _(i) 0_(n) _(i) _(×n) _(i) _(N) _(b) ]−B*≡[(I_(n) _(i) −B*₀)B*₁ . . . B*_(N) _(b) ],  (10) where B* is expressed by B*≡[B*₀ B*₁ . . . B*_(N) _(b) ], with (N_(b)+1) matrix taps B_(i), each of size n_(i)×n_(i). That is, B_(i) has the form:

$\begin{matrix} {B_{i} = {\begin{bmatrix} b_{i}^{({1,1})} & \ldots & b_{i}^{({1,n_{j}})} \\ \vdots & \ldots & \vdots \\ b_{i}^{({n_{i},1})} & \ldots & b_{i}^{({n_{i},n_{i}})} \end{bmatrix}.}} & (11) \end{matrix}$ Stated in other words, B₀ specifies the 0^(th) tap of the set of filters within element 26, the matrix B₁ specifies the 1^(st) tap of the set of filters within element 26, etc.

Defining {tilde over (B)}*≡[0_(n) _(i) _(×n) _(i) _(Δ) _(b) B*], where {tilde over (B)}* is a matrix of size n_(i)×n_(i)(N_(f)+ν), the value of N_(b) is related to the decision delay by the equality (Δ+N_(b)+1)=(N_(f)+ν).

The error vector at time k is given by E _(k) ={tilde over (B)}*x _(k+N) _(f) _(−tk−ν) −W*y _(k+N) _(f) _(−tk).  (12) Therefore, the n_(i)×n_(i) error auto-correlation matrix is

$\begin{matrix} \begin{matrix} {R_{\theta\theta} \equiv {E\left\lbrack {E_{k}^{*}E_{k}} \right\rbrack}} \\ {= {{{\overset{\sim}{B}}^{*}R_{xx}\overset{\sim}{B}} - {{\overset{\sim}{B}}^{*}R_{xy}W} - {W^{*}R_{yx}\overset{\sim}{B}} + {W^{*}R_{yy}W}}} \\ {= {{{{\overset{\sim}{B}}^{*}\left( {R_{xx} - {R_{xy}R_{yy}^{- 1}R_{yx}}} \right)}\overset{\sim}{B}} + {\left( {W^{*} - {{\overset{\sim}{B}}^{*}R_{xy}R_{yy}^{- 1}}} \right){R_{yy}\left( {W^{*} - {{\overset{\sim}{B}}^{*}R_{xy}R_{yy}^{- 1}}} \right)}}}} \\ {= {{{\overset{\sim}{B}}^{*}R^{\bot}\overset{\sim}{B}} + {G^{*}R_{yy}G}}} \end{matrix} & (13) \end{matrix}$

Using the Orthogonality Principle, which states that E[E_(k)y*_(k+N) _(f) _(−tk)]=0, it can be shown that the optimum matrix feedforward and feedback filters are related by

$\begin{matrix} \begin{matrix} {W_{opt}^{*} = {{\overset{\sim}{B}}_{opt}^{*}R_{xy}R_{yy}^{- 1}}} \\ {= {{\overset{\sim}{B}}_{opt}^{*}R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}}} \\ {{= {{{\overset{\sim}{B}}_{opt}^{*}\left( {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}} \right)}^{- 1}H^{*}R_{nn}^{- 1}}},} \end{matrix} & (14) \end{matrix}$ and the n_(i)×n_(i) auto-correlation matrix R_(ee) is

$\begin{matrix} \begin{matrix} {R_{\theta\theta} \equiv {E\left\lbrack {E_{k}E_{k}^{*}} \right\rbrack}} \\ {= {{{\overset{\sim}{B}}^{*}\left( {R_{xx} - {R_{xy}R_{yy}^{- 1}R_{yx}}} \right)}\overset{\sim}{B}}} \\ {= {{\overset{\sim}{B}}^{*}R^{\bot}\overset{\sim}{B}}} \\ {= {{{\overset{\sim}{B}}^{*}\left( {R_{xx} - {R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}{HR}_{xx}}} \right)}\overset{\sim}{B}}} \\ {= {{{\overset{\sim}{B}}^{*}\left( {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}} \right)}^{- 1}{\overset{\sim}{B}.}}} \end{matrix} & (15) \end{matrix}$ R_(ee) can also be expressed as R_(ee)={tilde over (B)}*R⁻¹{tilde over (B)}, where R=R_(xx) ⁻¹+H*R_(nn) ⁻¹H.

It remains to optimize values for the B matrix and the W matrix such that, in response to specified conditions, the trace (or determinant) of R_(ee) is minimized. The following discloses three approaches to such optimization.

Scenario 1

In this scenario, it is chosen to process only previous receiver decisions. These decisions relate to different users that concurrently have transmitted information that has been captured by antennas 21-1-21-n _(o) and detected in circuit 25. That means that feedback element 26 uses only delayed information and that the 0^(th) order coefficients of the filters within element 26 have the value 0. Therefore, in light of the definition expressed in equation (10), this scenario imposes the constraint of B₀=I_(n) _(f) .

To determine the optimum matrix feedback filter coefficients under this constraint, the following optimization problem needs to be solved: min_({tilde over (B)}) R _(ee)=min_({tilde over (B)}) {tilde over (B)}*R ⁻¹ {tilde over (B)}, subject to {tilde over (B)}*Φ=C*,  (16) where

$\begin{matrix} {{\Phi \equiv {\begin{bmatrix} I_{n_{i}} & 0 & \ldots & 0 \\ 0 & I_{n_{i}} & \vdots & \vdots \\ \vdots & 0 & ⋰ & I_{n_{i}} \\ 0 & \ldots & \ldots & 0 \end{bmatrix}\mspace{14mu}{and}\mspace{14mu} C^{*}}} = \left\lbrack \begin{matrix} 0_{n_{i} \times n_{i}\Delta} & \left. I_{n_{i}} \right\rbrack \end{matrix} \right.} & (17) \end{matrix}$ It can be shown that the solution to the above is given by {tilde over (B)} _(opt) =RΦ(Φ*RΦ)⁻¹ C,  (18) resulting in the error signal R _(ee,min) =C*(Φ*RΦ)⁻¹ C.  (19) If we define the partitioning

$\begin{matrix} {{R \equiv \begin{bmatrix} R_{11} & R_{12} \\ R_{12}^{*} & R_{22} \end{bmatrix}},} & (20) \end{matrix}$ where R₁₁ is of size n_(i)(Δ+1)×n_(i)(Δ+1), then

$\begin{matrix} {{\overset{\sim}{B}}_{opt} = {{\begin{bmatrix} R_{11} \\ R_{12}^{*} \end{bmatrix}R_{11}^{- 1}C} = {\begin{bmatrix} I_{n_{i}{({\Delta + 1})}} \\ {R_{12}^{*}R_{11}^{- 1}} \end{bmatrix}C}}} & (21) \end{matrix}$ and R _(ee,min) =C*R ₁₁ ⁻¹ C,  (22) where the delay parameter Δ is adjusted to minimize the trace (or determinant) of R_(ee,min). Once {tilde over (B)}_(opt) is known, equation (14) is applied to develop W*_(opt).

FIG. 3 presents a flowchart for carrying out the method of determining the filter coefficients that processor 22 computes pursuant to scenario 1. Step 100 develops an estimate of the MIMO channel between the input points and the output point of the actual transmission channel. This is accomplished in a conventional manner through the use of training sequences. The estimate of the MIMO channel can be chosen to be limited to a given memory length, ν, or can be allowed to include as much memory as necessary to reach a selected estimate error level. That, in turn, depends on the environment and is basically equal to the delay spread divided by T_(s).

Following step 100, step 110 determines the matrices, R_(nn), R_(xx), R_(xy), and R_(yy). The matrix R_(nn) is computed by first computing n=y−Hx and then computing the expected value E[n*n]—see equation (8) above. The matrix R_(xx) is computed from the known training sequences—see equation (7) above—(or is precomputed and installed in processor 22). In may be noted that for uncorrelated inputs, R_(xx)=I. The matrices R_(xy) and R_(yy) are computed from the known training sequences and the received signal or directly from H and R_(nn)—see equations (5) and (6) above.

Following step 110, step 120 computes R=R_(xx) ⁻¹−H*R_(nn) ⁻¹H, and the partition components, R₁₁, R₁₂, and R₂₂, as per equation (20). Following step 120, step 130 computes R_(ee,min) from equation (22) and adjusts Δ to minimize the trace (or determinant) of R_(ee,min), computes {tilde over (B)}_(opt) from equation (21), and from {tilde over (B)}_(opt) determines the coefficients of the n_(i)×n_(i) filters of element 26, pursuant to equation (10). Step 140 computes W*_(opt) from equation (14), and finally, step 150 installs the coefficients developed in step 130 into the filters of element 26 and the coefficients developed in step 140 into the filters of element 23.

A second approach for computing {tilde over (B)}_(opt) utilizes the block Cholesky factorization (which is a technique that is well known in the art):

$\begin{matrix} \begin{matrix} {R \equiv {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}}} \\ {= {{\begin{bmatrix} L_{1} & 0 \\ L_{2} & L_{3} \end{bmatrix}\begin{bmatrix} D_{1} & 0 \\ 0 & D_{2} \end{bmatrix}}\begin{bmatrix} L_{1}^{*} & L_{2}^{*} \\ 0 & L_{3}^{*} \end{bmatrix}}} \\ {{\equiv {LDL}^{*}},} \end{matrix} & (22) \end{matrix}$ where L₁ is of size n_(i)(Δ+1)×n_(i)(Δ+1). Using the result in equations (18) and (19) yields

$\begin{matrix} \begin{matrix} {{\overset{\sim}{B}}_{opt} = {{\begin{bmatrix} I_{n_{i}{({\Delta + 1})}} \\ {L_{2}L_{1}^{- 1}} \end{bmatrix}C} = \begin{bmatrix} I_{n_{i}} \\ {L_{2}L_{1}^{- 1}C} \end{bmatrix}}} \\ {= {L\left\lbrack {e_{n_{i}\Delta_{opt}}\ldots\mspace{11mu} e_{{n_{i}{({\Delta_{opt} + 1})}} - 1}} \right\rbrack}} \end{matrix} & (23) \end{matrix}$ and

$\begin{matrix} \begin{matrix} {R_{{\theta\theta},\min} = {C^{*}D_{1}^{- 1}C}} \\ {{= {{diag}\left( {d_{n_{i}\Delta_{opt}}^{- 1},\ldots\mspace{11mu},d_{{n_{i}{({\Delta_{opt} + 1})}} - 1}^{- 1}} \right)}},} \end{matrix} & (24) \end{matrix}$ where the index Δ_(opt) is chosen (as before) to minimize the trace and determinant of R_(ee,min). Using equation (23), equation (14) can be expressed as follows

$\begin{matrix} \begin{matrix} {W_{opt}^{*} = {{\overset{\sim}{B}}_{opt}^{*}R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}}} \\ {= {{{\overset{\sim}{B}}_{opt}^{*}\left( {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}} \right)}^{- 1}H^{*}R_{nn}^{- 1}}} \\ {= {\begin{bmatrix} {d_{n_{i}\Delta_{opt}}^{- 1}\theta_{n_{i}\Delta_{opt}}^{*}} \\ \vdots \\ {d_{{n_{i}{({\Delta_{opt} + 1})}} - 1}^{- 1}\theta_{{n_{i}{({\Delta_{opt} + 1})}} - 1}^{*}} \end{bmatrix}L^{- 1}H^{*}R_{nn}^{- 1}}} \end{matrix} & (25) \end{matrix}$

Yet a third approach for computing {tilde over (B)}_(opt), and R_(ee,min) defines {tilde over (B)}*=[C* B*] and partitions R^(⊥) into as

$\begin{bmatrix} R_{11}^{\bot} & R_{12}^{\bot} \\ R_{12}^{\bot} & R_{22}^{\bot} \end{bmatrix},$ where

R₁₁^(⊥) is of size n_(i)(Δ+1)×n_(i)(Δ+1), to yield

$\begin{matrix} \begin{matrix} {R_{\theta\theta} = {{\overset{\sim}{B}}^{*}R^{\bot}\overset{\sim}{B}}} \\ {\equiv {{\begin{bmatrix} C^{*} & {\overset{\_}{B}}^{*} \end{bmatrix}\begin{bmatrix} R_{11}^{\bot} & R_{12}^{\bot} \\ R_{12}^{\bot^{*}} & R_{22}^{\bot} \end{bmatrix}}\begin{bmatrix} C \\ B \end{bmatrix}}} \\ {\equiv {{\begin{bmatrix} I_{n_{i}} & {\overset{\_}{B}}^{*} \end{bmatrix}\begin{bmatrix} {\overset{\_}{R}}_{11}^{\bot} & {\overset{\_}{R}}_{12}^{\bot} \\ {\overset{\_}{R}}_{12}^{\bot^{*}} & {\overset{\_}{R}}_{22}^{\bot} \end{bmatrix}}\begin{bmatrix} I_{n_{i}} \\ \overset{\_}{B} \end{bmatrix}}} \\ {= {\left( {{\overset{\_}{R}}_{11}^{\bot} - {{{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}{\overset{\_}{R}}_{12}^{\bot^{*}}}} \right) + {\left( {{\overset{\_}{B}}^{*} + {{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}} \right)R_{22}^{\bot}}}} \\ {\left( {{\overset{\_}{B}}^{*} + {{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}} \right)^{*},} \end{matrix} & (26) \end{matrix}$ where

${{\overset{\_}{R}}_{11}^{\bot} \equiv {C^{*}R_{11}^{\bot}C\mspace{14mu}{and}\mspace{14mu}{\overset{\_}{R}}_{12}^{\bot}}} = {C^{*}{R_{12}^{\bot}.}}$ Therefore,

$\begin{matrix} {B_{opt} = {- {{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}}} & \; \\ {W_{opt}^{*} = {\left\lbrack {{0_{n_{i} \times n_{i}\;\Delta}\mspace{11mu} I_{n_{i}}} - {{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}} \right\rbrack\left( {R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}} \right.}} & (27) \\ {R_{{\theta\theta},\min} = {{\overset{\_}{R}}_{11}^{\bot} - {{{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}{\overset{\_}{R}}_{12}^{\bot^{*}}}}} & (28) \end{matrix}$ Scenario 2

In this scenario it is assumed that users whose signals are received by the FIG. 1 receiver are ordered so that lower-indexed users are detected first, and current decisions from lower-indexed users are used by higher-indexed users in making their decisions, i.e., B₀ is a lower-triangular matrix. The general results of equations (21) and (22) can be applied by setting C*=[0_(n) _(i) _(×n) _(i) _(Δ) B*₀] where B₀ is an n_(i)×n_(i) monic lower-triangular matrix whose entries are optimized to minimize trace(R_(ee,min)). To this end, a partitioning can be defined where

$\begin{matrix} {{R_{11}^{- 1} \equiv \begin{bmatrix} {R_{1}R_{2}} \\ {R_{2}^{*}R_{3}} \end{bmatrix}},} & (29) \end{matrix}$ R₁₁ being the term corresponding to R₁₁ of equation (20), with R₁ being of size n_(i)Δ×n_(i)Δ, and R₃ being of size n_(i)×n_(i). Equation (22) simplifies to R_(ee,min)=B*₀R₃B₀  (30) It can be shown that, the optimum monic lower-triangular B₀ that minimizes trace(R_(ee,min)) is given by the nomic lower-triangular Cholesky factor of R₃ ⁻¹, i.e., R₃ ⁻¹=L₃D₃L*₃,  (31) which yields B₀ ^(opt)=L₃,  (32) and R_(ee,min)=D₃ ⁻¹.  (33) The result is that

${{\overset{\sim}{B}}_{opt} = {\begin{bmatrix} I_{n_{i}{({\Delta + 1})}} \\ {R_{12}^{*}R_{11}^{- 1}} \end{bmatrix}C}},$ as expressed in equation (21), with the modified value of R₁₁ ⁻¹, and with C*=[0_(n) _(i) _(×n) _(i) _(Δ) B*_(0].)  (34)

A second approach for computing the optimum FIR filter coefficients for the FIG. 1 receiver involves computing a standard—rather than a block—Cholesky factorization of the matrix R=R_(xx) ⁻¹+H*R_(nn) ⁻¹H (see the definition following equation (15)) in the form LDL*. Then, the coefficients of the element 23 filters is given by the n_(i) adjacent columns of L that correspond to a diagonal matrix with the smallest trace. Therefore, equations (23) and (25) are used to compute the corresponding coefficients, with the understanding that L is now a lower-triangular matrix, rather than a block lower-triangular matrix. The equivalence of the two approaches can be shown using the nesting property of Cholesky factorization.

FIG. 4 presents a flowchart for carrying out the method of determining the filter coefficients that processor 22 computes pursuant to scenario 2. Steps 100 through 120 are the same as in FIG. 3, but the method diverges somewhat in the following steps. In step 131 the partition according to equation (20) is developed for a Δ that minimizes R_(ee,min) of equation (33), and control passes to step 141, where B₀ ^(opt) is computed based on equations (31) and (32), followed by a computation of {tilde over (B)}_(opt) based on equations (21) and (34). Following step 141, step 151 computes W*_(opt) from equation (14), and finally, step 161 installs the coefficients developed in step 141 into the filters of element 26 and the coefficients developed in step 151 into the filters of element 23.

Scenario 3

When multistage detectors are employed, current decisions from all other users, obtained from a previous detection stage, are available to the user of interest. Therefore, suppressing their interfering effects would improve the performance of the receiver. This detection scenario has the same mathematical formulation as scenarios 1 and 2, except that B₀ is now constrained only to be monic, i.e., e*_(i)B₀e_(i)=1 for all 0≦i≦n_(i)−1. The general results in equations (21) and (22) still apply with C*=[0_(n) _(i) _(×n) _(i) _(Δ)B*₀] where B₀ is optimized to minimize trace(R_(ee,min)). In short, under scenario 3, the following optimization problem is solved:

$\begin{matrix} {{{\min\limits_{B_{0}}{{{trace}\left( {B_{0}^{*}R_{3}B_{0}} \right)}\mspace{14mu}{subject}\mspace{14mu}{to}\mspace{14mu} e_{i}^{*}B_{0}e_{i}}} = {{1\mspace{14mu}{for}\mspace{14mu}{all}\mspace{14mu} 0} \leq i \leq {n_{i} - 1}}},} & (33) \end{matrix}$ where R₃ is as defined in equation (29). Using Lagranage multiplier techniques, it can be shown that the optimum monic B₀ and the corresponding MMSE are given by

$\begin{matrix} {{B_{0}^{opt} = \frac{R_{3}^{- 1}e_{i - 1}}{e_{i}^{*}R_{3}^{- 1}e_{i}}};{0 \leq i \leq {n_{i} - 1.}}} & (34) \end{matrix}$ Thus, the method of determining the filter coefficients that processor 22 computes pursuant to scenario 3 is the same as the method depicted in FIG. 4, except that the computation of B₀ ^(opt) within step 141 follows the dictates of equation (34).

With the above analysis in mind, a design of the filter coefficients of the filters within elements 23 and 26 can proceed for any given set of system parameters, which includes:

-   -   MIMO channel memory between the input points and the output         point of the actual transmission channel, ν,     -   The number of pre-filter taps chosen, N_(f),     -   The shortened MIMO memory, N_(b),     -   The number of inputs to the transmission channel, n_(i),     -   The number of output derived from the transmission channel,         n_(o),     -   The autocorrelation matrix of the inputs, R_(xx),     -   The autocorrelation matrix of the noise, R_(nn),     -   The oversampling used, l, and     -   The decision delay, Δ.

It should be understood that a number of aspects of the above disclosure are merely illustrative, and that persons skilled in the art may make various modifications that, nevertheless, are within the spirit and scope of this invention. 

1. A receiver responsive to an n_(o) plurality of entry points comprising: a feedforward filter structure having an n_(o)×n_(i) plurality of FIR filters where n_(i) is an integer greater than 1 and that is not restricted to equal n_(o), each responsive to a signal that comprises blocks of N_(f) symbols each, that is derived from one of said n_(o) entry points and each developing an output signal that contributes to one of n_(i) feedforward filter structure outputs, with each of said FIR filters in said feedforward filter structure having N_(f) filter taps; a feedback filter structure developing n_(i) feedback signals, the structure having an n_(o)×n_(i) plurality of FIR filters, each being responsive to one of n_(i) receiver output signals; a subtractor structure that develops n_(i) signals from signals of said n_(i) feedforward filter structure outputs and said n_(i) feedback signals; and decision logic responsive to said n_(i) signals developed by said subtractor structure, for developing said n_(i) receiver output signals.
 2. The receiver of claim 1 further comprising a sampling circuit interposed between said n_(o) plurality of entry points and said feedforward filter structure that samples received signal at rate ${T_{s} = \frac{T}{I}},$ where l is an integer and T is symbol rate of a transmitter whose signals said receiver receives.
 3. The receiver of claim 2 where l>1.
 4. The receiver of claim 2 where said plurality of FIR filters in said feedforward structure is expressed by matrix W, and W is computed by W* _(opt) ={tilde over (B)}* _(opt) R _(xy) R _(yy) ⁻¹, W* _(opt) ={tilde over (B)}* _(opt) R _(xx) H*(HR _(xx) H*+R _(nn))⁻¹, or W* _(opt) ={tilde over (B)}* _(opt)(R _(xx) ⁻¹ +H*R _(nn) ⁻¹ H)⁻¹ H*R _(nn) ⁻¹, where R_(xx) is an autocorrelation matrix of a block of signals transmitted by a plurality of transmitting antennas to said n_(o) antennas via a channel having a transfer characteristic H, R_(nn) is an autocorrelation matrix of noise received by said plurality of n_(o) antennas during said block of signals transmitted by said transmitting antennas, R_(xy)=R_(xx)H*, R_(yy)=HR_(xx)H*+R_(nn), and {tilde over (B)}*_(opt) is a sub-matrix of matrix B*_(opt), where B_(opt)=argmin_(B)trace(R_(ee)) subject to a selected constraint, R_(ee) being the error autocorrelation function.
 5. The receiver of claim 4 where said plurality of FIR filters in said feedback structure is expressed by matrix [I_(n) _(i) 0_(n) _(i) _(×n) _(i) _(N) _(h) ]−B*.
 6. The receiver of claim 4 wherein said plurality of FIR filters in said feedback filter structure and in said feedforward filter structure are subjected to designer constraints relative to any one or a number of members of the following set: transmission channel memory, size of said block, effective memory of the combination consisting of said transmission channel; n_(i), n_(o), autocorrelation matrix R_(xx), autocorrelation matrix R_(nn), value of factor l in said sampling circuit, and decision delay.
 7. The receiver of claim 4 where said matrix W is expressible by W≡[W₀ W₁ . . . W_(N) _(f) ⁻¹]^(t), where matrix W_(q) is a matrix that specifies q^(th) tap coefficients of said FIR filters included in said feedforward filter structure.
 8. The receiver of claim 1 where further including a processor coupled to signals applied to said feedforward filter structure, for computing coefficients of said FIR filters included in said feedforward filter structure and of said FIR filters included in said feedback filter structure.
 9. The receiver of claim 8 where coefficients are computed in said processor in response to a block of N_(f) symbols.
 10. The receiver of claim 8 where said coefficients are computed in a non-iterative manner.
 11. The receiver of claim 8 where said coefficients are computed with a non-iterative equation.
 12. The receiver of claim 8 where said coefficients are computed once every time interval that is related to rapidity of change in characteristics of transmission medium preceding said entry points.
 13. The receiver of claim 12 where said processor installs computed coefficients of said FIR filters included in said feedforward filter structure and of said FIR filters included in said feedback filter structure in said FIR filters included in said feedforward filter structure and of said FIR filters included in said feedback filter structure following each computation.
 14. The receiver of claim 1 where said FIR filters in said feedforward filter structure form an array of filters that includes one FIR filter connected between each of said n_(o) input points and said n_(i) outputs.
 15. The receiver of claim 14 where said entry points are antennas and said n_(o) plurality of antennas receive signals, via a transmission channel, from a transmitter having a multiple number of transmitting antennas.
 16. The receiver of claim 15 where said transmitter has n_(i) transmitting antennas.
 17. The receiver of claim 1 where coefficients of the FIR filters in said feedforward filter are set to results in an effective transmission channel B with memory N_(b), where N_(b)≦ν, where B is optimized so that B_(opt)=argmin_(B)trace(R_(ee)) subject to a selected constraint; R_(ee) being the error autocorrelation function, the feedback filter is modeled by [I_(n) _(i) 0_(n) _(i) _(×n) _(i) _(N) _(h) ]−B*, where n_(i) is the number of outputs in the feedforward filter, as well as the number of outputs in the feedback filter, and the feedforward filter is modeled by W, where W*_(opt)={tilde over (B)}*_(opt)R_(xy)R_(yy) ⁻¹, R_(xy) is the cross correlation between transmitted signals and signals received by said receiver, and R_(yy) is the autocorrelation of the received signals.
 18. The receiver of claim 17 where said selected constraint is {tilde over (B)}*Φ=C*, where ${\Phi \equiv {\begin{bmatrix} I_{n_{i}} & 0 & \ldots & 0 \\ 0 & I_{n_{i}} & \vdots & \vdots \\ \vdots & 0 & ⋰ & I_{n_{i}} \\ 0 & \ldots & \ldots & 0 \end{bmatrix}\mspace{14mu}{and}\mspace{14mu} C^{*}}} = {\begin{bmatrix} 0_{n_{i} \times n_{i}\Delta} & I_{n_{i}} \end{bmatrix}.}$
 19. The receiver of claim 17 where said selected constraint is {tilde over (B)}*Φ=C*, where ${{\Phi \equiv {\begin{bmatrix} I_{n_{i}} & 0 & \ldots & 0 \\ 0 & I_{n_{i}} & \vdots & \vdots \\ \vdots & 0 & ⋰ & I_{n_{i}} \\ 0 & \ldots & \ldots & 0 \end{bmatrix}{and}\mspace{14mu} C^{*}}} = \begin{bmatrix} 0_{n_{i} \times n_{i}\Delta} & B_{0}^{*} \end{bmatrix}},$ {tilde over (B)}*₀ being a monic lower-triangular matrix whose entries are optimized to minimize trace(R_(ee,min)).
 20. The receiver of claim 17 where said selected constraint is e*_(i)B₀e_(i)=1, where e_(i) is a vector with value 1 in position i and values 0 elsewhere, and where B*₀ being a monic lower-triangular matrix whose entries are optimized to minimize trace(R_(ee,min)). 